Automatic memory management for flexible real-time systems
نویسنده
چکیده
In a flexible real-time system, the constraints in available CPU time and memory lead to resourcemanagement problems, whichmust be handled carefully in order to maximize quality of service while avoiding overload. Managing CPU time—scheduling— is well studied and dynamic scheduling is widely accepted in the real-time industry. In order to make safe high-level languages, like Java, practically feasible for use in hard real-time systems, memorymanagement and particularly the dependencies between memory and CPU usage must be studied. The traditional approach to incremental GC scheduling, to perform garbage collection work in proportion to the amount of allocated memory, has drawbacks such as inconsistent utilization due to bursty allocations. To remedy this, time-triggered GC scheduling is proposed. It is shown that this strategy gives real-time performance that is equal to, or better than, that of an allocation-triggered GC. It is also shown that by using a deadline-based scheduler, the GC scheduling and, consequently, the real-time performance, is independent of complex and error-prone work metrics. Time-triggered GC also allows a more high-level view on GC scheduling, as the entire GC cycle is considered rather than each individual increment. This makes it possible to schedule GC as a normal task. As the scheduling parameters are explicit in the model, it also makes the timetriggered strategy well suited for auto-tuning and fits well into feedback scheduling systems. A novel approach of applying priorities to memory allocation is introduced and it is shown how this can be used to enhance the robustness of real-time applications. The proposed mechanisms can also be used to increase performance of systems with automatic memory management by limiting the amount of garbage collection work. Together, these solutions facilitate flexible and robust automaticmemory management for real-time systems. Adaptive techniques are presented, aimed at replacing or complementing a priori analysis with online auto-tuning. The presented ideas have been successfully implemented and validated in an experimental real-time Java environment, supporting the claim that this work is a step towards write once — run anywherewith hard real-time performance.
منابع مشابه
Predictable Automatic Memory Management for Embedded Systems
The power of dynamic memory management can be used to produce more flexible control applications without compromising the robustness of the applications. It is demonstrated how automatic memory management, or garbage collection (GC), can be used in a system that has to comply with hard real-time demands while still preserving the predictability of the system. A suitable garbage collection algor...
متن کاملConstrained Controller Design for Real-time Delay Recovery in Metro Systems
This study is concerned with the real-time delay recovery problem in metro loop lines. Metro is the backbone of public transportation system in large cities. A discrete event model for traffic system of metro loop lines is derived and presented. Two effective automatic controllers, linear quadratic regulator (LQR) and model predictive controller (MPC), are used to recover train delays. A newly-...
متن کاملFlexible automatic memory management for real-time and embedded systems
The advent of safe languages like Java on the real-time systems scene motivates further research on efficient strategies for non-intrusive garbage collection and especially GC scheduling. This thesis presents new approaches to flexible and robust memory management from an engineering perspective and is a step towards write once — run anywhere with hard real-time performance. The traditional app...
متن کاملHard Real-Time Reference Counting without External Fragmentation?
Using automatic memory management eliminates many programming errors that are both hard to find and to correct. Automatic memory management has been used frequently in functional and object oriented languages. These languages have rarely been used in hard real-time systems in the past. However, JavaTM has made the hard realtime community interested because of it robustness and platform independ...
متن کاملDecreasing Memory Overhead in Hard Real-Time Garbage Collection
Automatic memory management techniques eliminate many programming errors that are both hard to find and to correct. However, these techniques are not yet used in embedded systems with hard realtime applications. The reason is that current methods for automatic memory management have a number of drawbacks. The two major ones are: (1) not being able to always guarantee short real-time deadlines a...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2006